<?php
 Session_Start () ;
 If (!$_SESSION ["repertoire_config"]) { Header ("Location: ../../") ; }
 Include ("../../include/garennes.cfg") ;
 Include ("../../include/init.php") ;
 Include ("../../include/module_absences.cfg") ;
 Include ("../../include/module_absences.php") ;
 Include ("../include/config.inc") ;
 Include ("../include/absences.cfg") ;
 verif_droits ($droit_courant, $_SESSION ["code"]) ;
 
 Include ("../../include/var_temp.inc") ;
 
 //$resultat = SQL_commande ("SELECT * FROM gestion LIMIT 1", $id_sql) ;
 //$gestion = SQL_tableau_associatif ($resultat, "") ;
 $type_req = var_courante ("type_req", 0, Null) ;
 $type_envoi = var_courante ("type_envoi", 0, Null) ;
 $jour = var_courante ("jour", 0, Date ("d")) ;
 $mois_annee = var_courante ("mois_annee", 0, Date ("Y-m")) ;
 $jour1 = var_courante ("jour1", 0, Date ("d")) ;
 $mois_annee1 = var_courante ("mois_annee1", 0, Date ("Y-m")) ;
 $jour2 = var_courante ("jour2", 0, Date ("d")) ;
 $mois_annee2 = var_courante ("mois_annee2", 0, Date ("Y-m")) ;
 $classes = var_courante ("classes", 0, Null) ; 
 $nbr_max = var_courante ("nbr_max", 0, 0) ;
 $nbr11 = var_courante ("nbr11", 0, 0) ;
 $nbr12 = var_courante ("nbr12", 0, 0) ;
 $nbr21 = var_courante ("nbr21", 0, 0) ;
 $nbr22 = var_courante ("nbr22", 0, 0) ;
 $nbr31 = var_courante ("nbr31", 0, 0) ;
 $nbr32 = var_courante ("nbr32", 0, 0) ;
 $unite1 = var_courante ("unite1", 0, 0) ;
 $unite2 = var_courante ("unite2", 0, 0) ;
 $unite3 = var_courante ("unite3", 0, 0) ;
 $modele1 = var_courante ("modele1", 0, 0) ;
 $modele2 = var_courante ("modele2", 0, 0) ;
 $modele3 = var_courante ("modele3", 0, 0) ;
 $modele = var_courante ("modele", 0, 0) ;
 $millesime = millesime (0) ;
 
 // Recherche du publipostage a faire
 If (!IsSet ($type_envoi))
  {
   If (IsSet ($type_req) And (($type_req == 2) Or ($type_req == 3))) { $type_envoi = 2 ; }
   ElseIf (!IsSet ($type_envoi)) { $type_envoi = 0 ; }
  }
 $requete = "SELECT e.nom,e.prenoms,c.nom AS nom_classe,c.nom_bref,m.description,m.numero,p.id_abs_publipostage,p.date_demande,e.id_eleve
               FROM abs_publipostage p,eleves e,classes c,abs_modeles m
	      WHERE p.envoi='".$type_envoi."' AND p.eleve=e.id_eleve AND e.classe=c.id_classe AND e.exterieur='0' AND p.lettre=m.id_abs_modele" ;
 //If (IsSet ($id_eleve)) { $requete .= " AND e.id_eleve='".$id_eleve."'" ; }
 $table [0][0] = 0 ;
 If (IsSet ($type_req))
  {
   Switch ($type_req)
    {
     Case 1 : $requete .= " AND p.date_demande='".$mois_annee."-".$jour."'" ;
              If (SizeOf ($classes) < $nbr_max)
	       {
                $requete .= " AND (" ;
	        For ($i = 0 ; $i < SizeOf ($classes)-1 ; $i++)
	         {
	          $requete .= " c.id_classe='".$classes [$i]."' OR" ;
	         }
                $requete .= " c.id_classe='".$classes [$i]."')" ;
               }
              Break ;
     Case 2 : If (SizeOf ($classes) <= $nbr_max)
	       {
                $req = "SELECT id_eleve,repere1,repere2 FROM eleves WHERE " ;
	        For ($i = 0 ; $i < SizeOf ($classes)-1 ; $i++)
	         {
	          $req .= " classe='".$classes [$i]."' OR" ;
	         }
                $req .= " classe='".$classes [$i]."' ORDER BY classe,nom,prenoms" ;
               }
	      $res = SQL_commande ("DELETE FROM abs_publipostage WHERE envoi='2'", $id_sql) ;
              $res = SQL_commande ($req, $id_sql) ;
	      $req = "INSERT INTO abs_publipostage (eleve,repere1,repere2,lettre,programme,date_demande,date_envoi,envoi) VALUES " ;
	      $ok = 0 ;
	      If ($annee_scolaire [1][0] < 10) { $annee_scolaire [1][0] = "0".$annee_scolaire [1][0] ; }
	      For ($i = 0 ; $i < SQL_nbr_lignes ($res) ; $i++)
	       {
	        $e = SQL_ligne_suivante ($res) ;
		$type_lettre = 1 ;
		$mode = 1 ;
		$nombre = publipostage_nombre ($millesime."-".$annee_scolaire [1][0]."-01",Date ("Y-m-d"),$e [0],$type_lettre,$mode,1,0) ;
	        If ($nombre > 0)
		 {
		  If ($ok == 1) { $req .= "," ; }
		  $req .= "('".$e [0]."','".$e [1]."','".$e [2]."','".$modele."','0','".Date ("Y-m-d")."','0000-00-00','2')" ;
		  $ok = 1 ;
		 }
	       }
	      If ($ok == 1) { $ok = SQL_commande ($req, $id_sql) ; }
              Break ;
     Case 3 : $date1 = $mois_annee1."-".$jour1 ;
	      $date2 = $mois_annee2."-".$jour2 ;
              //$requete .= " AND p.date_demande>='".$date1."'" ;
	      //$requete .= " AND p.date_demande<='".$date2."'" ;
              If (SizeOf ($classes) < $nbr_max)
	       {
	        If (SizeOf ($classes) > 1)
		 {
                  $requete .= " AND (" ;
	          For ($i = 0 ; $i < SizeOf ($classes)-1 ; $i++)
	           {
	            $requete .= " c.id_classe='".$classes [$i]."' OR" ;
	           }
                  $requete .= " c.id_classe='".$classes [$i]."')" ;
                 }
                Else { $requete .= " AND c.id_classe='".$classes [0]."'" ; }
               }
              If (SizeOf ($classes) <= $nbr_max)
	       {
                $req = "SELECT id_eleve,repere1,repere2 FROM eleves WHERE" ;
	        For ($i = 0 ; $i < SizeOf ($classes)-1 ; $i++)
	         {
	          $req .= " classe='".$classes [$i]."' OR" ;
	         }
                $req .= " classe='".$classes [$i]."' ORDER BY classe,nom,prenoms" ;
               }
              $res = SQL_commande ("DELETE FROM abs_publipostage WHERE envoi='2'", $id_sql) ;
	      If ($modele1 != 0)
	       {
	        $table [0][0]++ ;
	        $table [$table [0][0]][0] = Str_Replace (",",".",$nbr11) ;
		$table [$table [0][0]][1] = Str_Replace (",",".",$nbr12) ;
		$table [$table [0][0]][2] = $unite1 ;
		$table [$table [0][0]][3] = $modele1 ;
               }
              If ($modele2 != 0)
	       {
	        $table [0][0]++ ;
	        $table [$table [0][0]][0] = Str_Replace (",",".",$nbr21) ;
		$table [$table [0][0]][1] = Str_Replace (",",".",$nbr22) ;
		$table [$table [0][0]][2] = $unite2 ;
		$table [$table [0][0]][3] = $modele2 ;
               }
              If ($modele3 != 0)
	       {
	        $table [0][0]++ ;
	        $table [$table [0][0]][0] = Str_Replace (",",".",$nbr31) ;
		$table [$table [0][0]][1] = Str_Replace (",",".",$nbr32) ;
		$table [$table [0][0]][2] = $unite3 ;
		$table [$table [0][0]][3] = $modele3 ;
               }
	      $res = SQL_commande ($req, $id_sql) ;
	      If ($table [0][0] > 0)
	       {
	        $req = "INSERT INTO abs_publipostage (eleve,repere1,repere2,lettre,programme,date_demande,date_envoi,envoi) VALUES " ;
	        $ok = 0 ;
	        For ($i = 0 ; $i < SQL_nbr_lignes ($res) ; $i++)
	         {
	          $e = SQL_ligne_suivante ($res) ;
	  	  For ($j = 1 ; $j <= $table [0][0] ; $j++)
		   {
		    $nbr_abs = Str_Replace (",",".",publipostage_nombre ($date1,$date2,$e [0],1,1,$table [$j][2],0)) ;
		    If (($nbr_abs >= $table [$j][0]) And ($nbr_abs < $table [$j][1]))
		     {
		      If ($ok == 1) { $req .= "," ; }
		      $req .= "('".$e [0]."','".$e [1]."','".$e [2]."','".$table [$j][3]."','0','".Date ("Y-m-d")."','0000-00-00','2')" ;
		      $ok = 1 ;
                     }
                   }
                 }
		If ($ok == 1) { $ok = SQL_commande ($req, $id_sql) ; }
	       }
              Break ;
    }
  }
 $requete .= " ORDER BY " ;
 If (IsSet ($ordre))
  {
   Switch ($ordre)
    {
     Default :
     Case  1 : $requete .= "e.nom,e.prenoms" ; Break ;
     Case  2 : $requete .= "c.nom,c.nom_bref" ; Break ;
     Case  3 : $requete .= "p.date_demande" ; Break ;
     Case  4 : $requete .= "m.description" ; Break ;
    }
  }
 Else
  {
   $requete .= "e.nom,e.prenoms,c.nom,c.nom_bref,m.description" ;
   $ordre = 2 ;
  }
 $resultats = SQL_commande ($requete, $id_sql) ;
 $nombre = SQL_nbr_lignes ($resultats) ;
 $table [0][0] = 0 ;
 If (!IsSet ($date1)) { $date1 = premier_jour_ouvrable_annee () ; }
 If (!IsSet ($date2)) { $date2 = dernier_jour_ouvrable_annee () ; }
 If ($nombre > 0)
  {
   $ok = 0 ;
   For ($i = 1 ; $i <= $nombre ; $i++)
    {
     $p = SQL_tableau_associatif ($resultats, "") ;
     // Est-ce sous quarantaine ?
     If (courrier_quarantaine ($p ["eleve"], $p ["repere1"], $p ["repere2"]) == 0)
      {
       // Non
       If (StrPos ($p ["prenoms"], " ") > 0) { $prenom = SubStr ($p ["prenoms"], 0, StrPos ($p ["prenoms"], " ")) ; }
       Else { $prenom = $p ["prenoms"] ; }
       $prenom = StrToUpper (SubStr ($prenom, 0, 1)).StrToLower (SubStr ($prenom, 1, StrLen ($prenom)-1)) ;
       $table [0][0]++ ;
       $table [$table [0][0]][0] = $p ["nom"] ;
       $table [$table [0][0]][1] = $prenom ;
       $table [$table [0][0]][2] = $p ["nom_classe"] ;
       $table [$table [0][0]][3] = $p ["nom_bref"] ;
       $table [$table [0][0]][4] = $p ["description"] ;
       $table [$table [0][0]][5] = $p ["numero"] ;
       $table [$table [0][0]][6] = SubStr ($p ["date_demande"], 8, 2)." ".$nom_mois [(integer)SubStr ($p ["date_demande"], 5, 2)]." ".SubStr ($p ["date_demande"], 0, 4) ;
       $table [$table [0][0]][7] = $p ["id_abs_publipostage"] ;
       $table [$table [0][0]][8] = $p ["id_eleve"] ;
      }
    }
  }

 // Affichage des resultats
 $resultats = SQL_commande ("SELECT * FROM menus WHERE numero='".$droit_courant."' AND ordre='0'", $id_sql) ;
 $l = SQL_tableau_associatif ($resultats, "") ;
 Echo "<html>" ;
 Echo "<head>" ;
 entete_html ("Garennes - Module absences - Liste de publipostage", "", 1) ;
 Echo styles ("none", "none", "none", $l ["lien"], "none") ;
 Echo "</head>" ;
 Echo "<body background=\"../images/fond.png\" text=\"#000000\">" ;
 Echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">" ;
 Echo "<tr>" ;
 Echo "<td></td>" ;
 Echo "<td width=\"100%\" align=\"center\">Liste de publipostage" ;
 If (IsSet ($type_req))
  {
   $dt = Explode ("-", $mois_annee) ;
   Switch ($type_req)
    {
     Case 1 : Echo " au ".$jour." ".$nom_mois [(integer)$dt [1]]." ".$dt [0] ; Break ;
    }
  }
 Echo "</td></tr></table><br>" ;
 If ($table [0][0] > 0)
  {
   // Liste existante
   Echo "<table align=\"center\" border=\"1\" bgcolor=\"".$l ["couleur_fond"]."\" cellspacing=\"0\" cellpadding=\"0\" style=\"border:1px solid #000000;border-collapse:collapse\">" ;
   Echo "<tr bgcolor=\"".$l ["lien"]."\">" ;
   
   Echo "<td colspan=\"2\"></td>" ;
   
   Echo "<td align=\"left\">&nbsp;" ;
   If ($ordre != 1) { Echo "<a href=\"".$_SERVER ["PHP_SELF"]."?ordre=1&type_envoi=".$type_envoi."\">" ; } Else { Echo "<b><i>" ; }
   Echo "&Eacute;l&egrave;ve" ;
   If ($ordre != 1) { Echo "</a>" ; } Else { Echo "</i></b>" ; }
   Echo "&nbsp;</td>" ;
   
   Echo "<td align=\"center\">&nbsp;" ;
   If ($ordre != 2) { Echo "<a href=\"".$_SERVER ["PHP_SELF"]."?ordre=2&type_envoi=".$type_envoi."\">" ; } Else { Echo "<b><i>" ; }
   Echo "Classe" ;
   If ($ordre != 2) { Echo "</a>" ; } Else { Echo "</i></b>" ; }
   Echo "&nbsp;</td>" ;
   
   Echo "<td align=\"left\">&nbsp;" ;
   If ($ordre != 3) { Echo "<A HREF=\"".$_SERVER ["PHP_SELF"]."?ordre=3&type_envoi=".$type_envoi."\">" ; } Else { Echo "<b><i>" ; }
   Echo "Date demande" ;
   If ($ordre != 3) { Echo "</a>" ; } Else { Echo "</i></b>" ; }
   Echo "&nbsp;</td>" ;
   
   Echo "<td align=\"left\">&nbsp;" ;
   If ($ordre != 4) { Echo "<a href=\"".$_SERVER ["PHP_SELF"]."?ordre=4&type_envoi=".$type_envoi."\">" ; } Else { Echo "<b><i>" ; }
   Echo "Lettre" ;
   If ($ordre != 4) { Echo "</a>" ; } Else { Echo "</i></b>" ; }
   Echo "&nbsp;</td>" ;
   
   Echo "<td align=\"left\">&nbsp;Absence(s)&nbsp;</td>" ;
   
   Echo "<form action=\"./abs_publipostage.php\" method=\"post\" name=\"form_publi\">" ;
   Echo "<input type=\"hidden\" name=\"publi_0\" value=\"".$table [0][0]."\">" ;
   Echo "<input type=\"hidden\" name=\"type_envoi\" value=\"".$type_envoi."\">" ;
   Echo "</tr>" ;
   For ($i = 1 ; $i <= $table [0][0] ; $i++)
    {
     Echo "<tr" ; If ($i%2 == 0) { Echo " bgcolor=\"".$l ["nom"]."\"" ; }
     Echo ">" ;
     Echo "<td>&nbsp;".$i."&nbsp;</td>" ;
     Echo "<td align=\"center\"><input type=\"checkbox\" name=\"publi_".$i."\" value=\"".$table [$i][7]."\" checked></td>" ;
     Echo "<td align=\"left\">&nbsp;".$table [$i][0]."&nbsp;<i>".$table [$i][1]."</i>&nbsp;</td>" ;
     Echo "<td align=\"center\">&nbsp;".$table [$i][2]."&nbsp;(".$table [$i][3].")&nbsp;</td>" ;
     Echo "<td align=\"center\">&nbsp;".$table [$i][6]."&nbsp;</td>" ;
     Echo "<td align=\"left\">&nbsp;(".$table [$i][5].")&nbsp;".$table [$i][4]."&nbsp;</td>" ;
     Echo "<td align=\"right\">&nbsp;".publipostage_nombre ($date1,$date2,$table [$i][8],1,1,2,0)."&nbsp;H&nbsp;</td>" ;
     Echo "</tr>" ;
    }
   Echo "</table><br>" ;
   Echo "<center><input type=\"submit\" name=\"submit\" value=\"Cr&eacute;er les lettres de la s&eacute;lection\"></center>" ;
   Echo "</form>" ;
  }
 Else
  {
   // Pas de fichier de publipostage
   Echo "<br><center>Aucune liste n'a pu &ecirc;tre &eacute;tablie : Publipostage non possible.</center>" ;
  }
 Echo "</body></html>" ;
?>